Skip to content

Fix broken network cookbook with newest konnektor updates - #324

Open
hannahbaumann wants to merge 13 commits into
mainfrom
fix-broken-network-new-konnektor
Open

hannahbaumann wants to merge 13 commits into
mainfrom
fix-broken-network-new-konnektor

Conversation

@hannahbaumann

Copy link
Copy Markdown
Contributor

No description provided.

@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Colab 👈 Launch a Colab session on branch fix-broken-network-new-konnektor

@hannahbaumann hannahbaumann changed the title [WIP] Adapt fix broken network cookbook with newest konnektor updates [WIP] Fix broken network cookbook with newest konnektor updates Sep 10, 2026
@hannahbaumann
hannahbaumann changed the base branch from fix-broken-networks to main September 10, 2026 12:23
@hannahbaumann hannahbaumann changed the title [WIP] Fix broken network cookbook with newest konnektor updates Fix broken network cookbook with newest konnektor updates Sep 10, 2026
@jthorton jthorton self-assigned this Sep 23, 2026
@jthorton
jthorton requested a review from IAlibay September 23, 2026 14:12
@@ -0,0 +1,853 @@
{

@IAlibay IAlibay Sep 24, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These lines read a little bit "robotic" - it might be worth rephrasing them.


Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrased this!

@@ -0,0 +1,853 @@
{

@IAlibay IAlibay Sep 24, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A little bit more prose here would be good, i.e. "we start by loading our LigandNetwork, which can be found in mst_network_tyk2.json..."


Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added this!

@@ -0,0 +1,853 @@
{

@IAlibay IAlibay Sep 24, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line #7.    plot_atommapping_network(planned_network)

If you capture the figure, I think it'll only plot the output once


Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I changed this!

@IAlibay IAlibay left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mostly reviewed for content - overrall looks good to me, just a couple of small comments on the amount of details that are in the text.

Comment thread environment.yaml Outdated
- git+https://github.com/OpenFreeEnergy/cinnabar@0.6.0 # Use conda-forge v0.6.0 after new openfe release updates pins on cinnabar
- git+https://github.com/OpenFreeEnergy/kartograf@v2.0.0 # Use conda-forge v2.0 after new openfe release updates pins on kartogra
- git+https://github.com/OpenFreeEnergy/konnektor@v0.4.0 # use conda-forge v0.4.0 after openfe conda-forge release
- git+https://github.com/OpenFreeEnergy/konnektor@avoid_edges_concatenator # use conda-forge v0.4.0 after openfe conda-forge release

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0.5.0 is out now!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I changed this!

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make it clear this is specific to the hybrid topology protocol currently (the way we get the protocol and build the transformations) but the process of identifying missing results and creating new transformations should apply to other RBFE protocols?


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"we can determine which planned transformations" -> "we can determine which transformations" planned again feels awkward.

"Every planned ligand is kept," -> "We retain all input ligands from the planned network, including those for which no transformation ..."


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"A transformation counts as successful only when both its complex and solvent legs are completed successfully." We should make it clear that this is specific to the Hybrid Topology Protocol and that the settings helper function below is specific for that one as well or consider making it general?


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line #32.        is_complex = any(

We could use the contains api https://github.com/OpenFreeEnergy/gufe/blob/b338c869ec31e2570249f3aef38ab6121ac99ea1/src/gufe/chemicalsystem.py#L128

so it would be:

is_complex = state_a.contains(ProteinComponent)


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line #4.        mapper: AtomMapper,

To consider, should this have the same API as the network generators if this would eventually go into Konnektor and support multiple mappers and a scorer?


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line #5.            ("lig_ejm_31", "lig_ejm_46"),

Is it intentional to generate the same edges again that we faked failing? We also don't do anything with new edges by name should we check this matches what we intened?


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line #2.        charge_a = Chem.rdmolops.GetFormalCharge(mapping.componentA.to_rdkit())

We can use mapping.get_alchemical_charge_difference()


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line #14.        settings = copy.deepcopy(reference_protocol.settings)

we could use reference_protocol.settings.unfrozen_copy()


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line #24.        protein = next(

For the protein and solvent consider using get_components_of_type


Reply via ReviewNB

@@ -0,0 +1,812 @@
{

@jthorton jthorton Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line #39.        cofactors = {

For cofactors, we could also use get_components_of_type SmallMoleculeComponent and then remove those in the mapping, this feels a little safer than going on the cofactor label?


Reply via ReviewNB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants